/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AST;

import java.util.LinkedList;
import javax.swing.JFrame;

    import abc.notation.Tune;
    import abc.parser.TuneParser;
    import abc.ui.swing.JScoreComponent;

/**
 *
 * @author eddytrex
 */
public class Composicion extends Instruccion {
    public DefinicionSonidos Sonidos;
    public DefinicionMelodia DComposicion;
    public Partitura partitura;
    
    public String NombreM;
    public String Autor;
    public String Genero;
    public String Estilo;
    
    public Composicion(DefinicionMelodia n,DefinicionSonidos s, Partitura p)
    {
        Sonidos=s;
        DComposicion=n;
        partitura=p;
       
    }
    
    public boolean CargarTS()
    {
       tabla=new TablaDeSimbolos();
       
       boolean res=true;
       Sonidos.tabla=tabla;
       
       res=Sonidos.CargarTS();
       if(res){DComposicion.tabla=tabla;res=DComposicion.CargarTS(); 
       
       this.Autor=this.DComposicion.Autor;
       this.NombreM=this.DComposicion.NombreM;
       this.Estilo=this.Estilo;
       this.Genero=this.Genero;
       
       }
       if(res){partitura.tabla=tabla; res=partitura.CargarTS();}
       return res;
    }
    
    public boolean Traduccion()
    {
        boolean res=true;
        res=this.DComposicion.Traduccion();
        if(res)
        {
            res=this.Sonidos.Traduccion();
        }
        if(res)
        {
            res=this.partitura.Traduccion();
            
            this.Vs=partitura.Vs;
            this.Pentagramas=partitura.Pentagramas;
            
            Traduccion="T"+Integer.toString(tabla.Tempo)+" "+partitura.Traduccion;
            TraduccionABC4J=partitura.Pentagramas.get(1);
        }
        if(res)
        {
            System.out.println(""+this.Traduccion);
            proyectocompimusica.fuge a=new proyectocompimusica.fuge(this.Traduccion);
            a.cancion.setTitle(this.NombreM);
            
        //    System.out.println(""+this.TraduccionABC4J);
            
          /*  Tune tune = new TuneParser().parse(this.TraduccionABC4J);
            JScoreComponent scoreUI =new JScoreComponent();
            scoreUI.setTune(tune);
            JFrame j = new JFrame();
            j.add(scoreUI);
            j.pack();
       
        j.setVisible(true);
            */
           //System.out.println("trollface ya paso por aca");
           //a.run();
        }
        return res;
    }
}
